package ecustom.clients.k3client.entities;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.fasterxml.jackson.annotation.JsonAutoDetect;

import ecustom.common.util.CustomUtil;

/**
* @author 作者:Gcc
* @createDate 创建时间：Jul 31, 2023 12:45:46 PM
* 
* 付款单
* 
*/
@JsonAutoDetect(
		fieldVisibility = JsonAutoDetect.Visibility.ANY,
		getterVisibility = JsonAutoDetect.Visibility.NONE)
public class ERPPAYBILLReq {

	private String IsAutoSubmitAndAudit;
	private Model Model;

	public Model getModel() {
		if(CustomUtil.isBlank(Model)) return Model = new Model();
		return Model;
	}
	public void setModel(Model model) {
		Model = model;
	}
	public String getIsAutoSubmitAndAudit() {
		return IsAutoSubmitAndAudit;
	}
	public void setIsAutoSubmitAndAudit(String isAutoSubmitAndAudit) {
		IsAutoSubmitAndAudit = isAutoSubmitAndAudit;
	}



	@JsonAutoDetect(
			fieldVisibility = JsonAutoDetect.Visibility.ANY,
			getterVisibility = JsonAutoDetect.Visibility.NONE)
	public static class Model {
		private Integer FID;	// 实体主键，有实体主键为修改操作，没有则新建
		private Map<String, Object> FBillTypeID;	// 单据类型
		private String FDATE;	// 单据时间
		private String FCONTACTUNITTYPE;	// 往来单位类型
		private Map<String, Object> FCONTACTUNIT;	// 往来单位
		private String FRECTUNITTYPE;	// 收款单位类型
		private Map<String, Object> FRECTUNIT;	// 收款单位
		private Map<String, Object> FCURRENCYID;	// 币别
		private Map<String, Object> FEXCHANGETYPE;	// 汇率类型
		private Map<String, Object> FSETTLEORGID;	// 结算组织
		private String FDOCUMENTSTATUS;	// 单据状态：固定-Z
		private String FBUSINESSTYPE;	// 业务类型：固定-3
		private String FCancelStatus;	// 作废状态，默认：A
		private Map<String, Object> FPAYORGID;	// 付款组织
		private Map<String, Object> FSETTLECUR;	// 结算币别
		private String FREMARK;	// 备注
		private Map<String, Object> FSETTLEMAINBOOKID;	// 结算本位币，币别
		private String F_SZXY_Combo;	// 是否往来费用
		private List<FPAYBILLENTRY> FPAYBILLENTRY;
		private String F_SZXY_OARequestID;	// OAID
		
		private Double FEXCHANGERATE;	// 汇率
		private Double FSETTLERATE;	// 汇率
		
		public Double getFSETTLERATE() {
			return FSETTLERATE;
		}
		public void setFSETTLERATE(Double fSETTLERATE) {
			FSETTLERATE = fSETTLERATE;
		}
		public Integer getFID() {
			return FID;
		}
		public Map<String, Object> getFEXCHANGETYPE() {
			if(CustomUtil.isBlank(FEXCHANGETYPE)) return FEXCHANGETYPE = new HashMap<String, Object>();
			return FEXCHANGETYPE;
		}
		public void setFEXCHANGETYPE(Map<String, Object> fEXCHANGETYPE) {
			FEXCHANGETYPE = fEXCHANGETYPE;
		}
		public String getF_SZXY_OARequestID() {
			return F_SZXY_OARequestID;
		}
		public void setF_SZXY_OARequestID(String f_SZXY_OARequestID) {
			F_SZXY_OARequestID = f_SZXY_OARequestID;
		}
		public void setFID(Integer fID) {
			FID = fID;
		}
		public Map<String, Object> getFBillTypeID() {
			if(CustomUtil.isBlank(FBillTypeID)) return FBillTypeID = new HashMap<String, Object>();
			return FBillTypeID;
		}
		public void setFBillTypeID(Map<String, Object> fBillTypeID) {
			FBillTypeID = fBillTypeID;
		}
		public String getFDATE() {
			return FDATE;
		}
		public void setFDATE(String fDATE) {
			FDATE = fDATE;
		}
		public String getFCONTACTUNITTYPE() {
			return FCONTACTUNITTYPE;
		}
		public void setFCONTACTUNITTYPE(String fCONTACTUNITTYPE) {
			FCONTACTUNITTYPE = fCONTACTUNITTYPE;
		}
		public Map<String, Object> getFCONTACTUNIT() {
			if(CustomUtil.isBlank(FCONTACTUNIT)) return FCONTACTUNIT = new HashMap<String, Object>();
			return FCONTACTUNIT;
		}
		public void setFCONTACTUNIT(Map<String, Object> fCONTACTUNIT) {
			FCONTACTUNIT = fCONTACTUNIT;
		}
		public Map<String, Object> getFCURRENCYID() {
			if(CustomUtil.isBlank(FCURRENCYID)) return FCURRENCYID = new HashMap<String, Object>();
			return FCURRENCYID;
		}
		public void setFCURRENCYID(Map<String, Object> fCURRENCYID) {
			FCURRENCYID = fCURRENCYID;
		}
		public Double getFEXCHANGERATE() {
			return FEXCHANGERATE;
		}
		public void setFEXCHANGERATE(Double fEXCHANGERATE) {
			FEXCHANGERATE = fEXCHANGERATE;
		}
		public Map<String, Object> getFSETTLEORGID() {
			if(CustomUtil.isBlank(FSETTLEORGID)) return FSETTLEORGID = new HashMap<String, Object>();
			return FSETTLEORGID;
		}
		public void setFSETTLEORGID(Map<String, Object> fSETTLEORGID) {
			FSETTLEORGID = fSETTLEORGID;
		}
		public String getFDOCUMENTSTATUS() {
			return FDOCUMENTSTATUS;
		}
		public void setFDOCUMENTSTATUS(String fDOCUMENTSTATUS) {
			FDOCUMENTSTATUS = fDOCUMENTSTATUS;
		}
		public String getFBUSINESSTYPE() {
			return FBUSINESSTYPE;
		}
		public void setFBUSINESSTYPE(String fBUSINESSTYPE) {
			FBUSINESSTYPE = fBUSINESSTYPE;
		}
		public String getFCancelStatus() {
			return FCancelStatus;
		}
		public void setFCancelStatus(String fCancelStatus) {
			FCancelStatus = fCancelStatus;
		}
		public Map<String, Object> getFPAYORGID() {
			if(CustomUtil.isBlank(FPAYORGID)) return FPAYORGID = new HashMap<String, Object>();
			return FPAYORGID;
		}
		public void setFPAYORGID(Map<String, Object> fPAYORGID) {
			FPAYORGID = fPAYORGID;
		}
		public Map<String, Object> getFSETTLECUR() {
			if(CustomUtil.isBlank(FSETTLECUR)) return FSETTLECUR = new HashMap<String, Object>();
			return FSETTLECUR;
		}
		public void setFSETTLECUR(Map<String, Object> fSETTLECUR) {
			FSETTLECUR = fSETTLECUR;
		}
		public String getFREMARK() {
			return FREMARK;
		}
		public void setFREMARK(String fREMARK) {
			FREMARK = fREMARK;
		}
		public Map<String, Object> getFSETTLEMAINBOOKID() {
			if(CustomUtil.isBlank(FSETTLEMAINBOOKID)) return FSETTLEMAINBOOKID = new HashMap<String, Object>();
			return FSETTLEMAINBOOKID;
		}
		public void setFSETTLEMAINBOOKID(Map<String, Object> fSETTLEMAINBOOKID) {
			FSETTLEMAINBOOKID = fSETTLEMAINBOOKID;
		}
		public String getF_SZXY_Combo() {
			return F_SZXY_Combo;
		}
		public void setF_SZXY_Combo(String f_SZXY_Combo) {
			F_SZXY_Combo = f_SZXY_Combo;
		}
		public List<FPAYBILLENTRY> getFPAYBILLENTRY() {
			if(CustomUtil.isBlank(FPAYBILLENTRY)) return FPAYBILLENTRY = new ArrayList<FPAYBILLENTRY>();
			return FPAYBILLENTRY;
		}
		public void setFPAYBILLENTRY(List<FPAYBILLENTRY> fPAYBILLENTRY) {
			FPAYBILLENTRY = fPAYBILLENTRY;
		}
		public String getFRECTUNITTYPE() {
			return FRECTUNITTYPE;
		}
		public void setFRECTUNITTYPE(String fRECTUNITTYPE) {
			FRECTUNITTYPE = fRECTUNITTYPE;
		}
		public Map<String, Object> getFRECTUNIT() {
			if(CustomUtil.isBlank(FRECTUNIT)) return FRECTUNIT = new HashMap<String, Object>();
			return FRECTUNIT;
		}
		public void setFRECTUNIT(Map<String, Object> fRECTUNIT) {
			FRECTUNIT = fRECTUNIT;
		}
		
	}
	
	@JsonAutoDetect(
			fieldVisibility = JsonAutoDetect.Visibility.ANY,
			getterVisibility = JsonAutoDetect.Visibility.NONE)
	public static class FPAYBILLENTRY {
		private Map<String, Object> FSETTLETYPEID;	// 结算方式
		private Map<String, Object> FPURPOSEID;	// 付款用途
		private Double F_SZXY_Amount;	// 费用金额
		private Double F_SZXY_Amount1;	// 进项税
		private Double FPAYTOTALAMOUNTFOR;	// 表体-应付金额
		private Double FPAYAMOUNTFOR_E;	// 付款金额
		private Map<String, Object> FACCOUNTID;	// 我方银行账号
		private String FOPPOSITEBANKACCOUNT;	// 对方银行账号
		private String FOPPOSITECCOUNTNAME;	// 对方账户名称
		private String FCOMMENT;	// 备注
		private String FRecType;	// 收款类型
		private Map<String, Object> FCOSTID;	// 费用项目
		private Map<String, Object> FEXPENSEDEPTID_E;	// 费用承担部门
		//private Double FPAYAMOUNT_E;	// 付款金额本位币
		private String FPOSTDATE;	// 登账日期
		private Double FPRICE;	// 含税单价
		private String FRuZhangType;	// 入账类型
		//private Double FTaxAmt;	// 税额
		//private Double FNOTVERIFICATEAMOUNT;	// 未核销金额
		private String F_SZXY_NoteInvNO;	// 备注发票号
		private Map<String, Object> FBankDetail;	// 银行网点
		private Integer F_SZXY_INPUTTAXTYPE;	// 进项税类型：0：税一；1：税二
		
		public Integer getF_SZXY_INPUTTAXTYPE() {
			return F_SZXY_INPUTTAXTYPE;
		}
		public void setF_SZXY_INPUTTAXTYPE(Integer f_SZXY_INPUTTAXTYPE) {
			F_SZXY_INPUTTAXTYPE = f_SZXY_INPUTTAXTYPE;
		}
		public Map<String, Object> getFSETTLETYPEID() {
			if(CustomUtil.isBlank(FSETTLETYPEID)) return FSETTLETYPEID = new HashMap<String, Object>();
			return FSETTLETYPEID;
		}
		public Map<String, Object> getFBankDetail() {
			if(CustomUtil.isBlank(FBankDetail)) return FBankDetail = new HashMap<String, Object>();
			return FBankDetail;
		}
		public void setFBankDetail(Map<String, Object> fBankDetail) {
			FBankDetail = fBankDetail;
		}
		public String getF_SZXY_NoteInvNO() {
			return F_SZXY_NoteInvNO;
		}
		public void setF_SZXY_NoteInvNO(String f_SZXY_NoteInvNO) {
			F_SZXY_NoteInvNO = f_SZXY_NoteInvNO;
		}
		public void setFSETTLETYPEID(Map<String, Object> fSETTLETYPEID) {
			FSETTLETYPEID = fSETTLETYPEID;
		}
		public Map<String, Object> getFPURPOSEID() {
			if(CustomUtil.isBlank(FPURPOSEID)) return FPURPOSEID = new HashMap<String, Object>();
			return FPURPOSEID;
		}
		public void setFPURPOSEID(Map<String, Object> fPURPOSEID) {
			FPURPOSEID = fPURPOSEID;
		}
		public Double getF_SZXY_Amount() {
			return F_SZXY_Amount;
		}
		public void setF_SZXY_Amount(Double f_SZXY_Amount) {
			F_SZXY_Amount = f_SZXY_Amount;
		}
		public Double getF_SZXY_Amount1() {
			return F_SZXY_Amount1;
		}
		public void setF_SZXY_Amount1(Double f_SZXY_Amount1) {
			F_SZXY_Amount1 = f_SZXY_Amount1;
		}
		public Double getFPAYTOTALAMOUNTFOR() {
			return FPAYTOTALAMOUNTFOR;
		}
		public void setFPAYTOTALAMOUNTFOR(Double fPAYTOTALAMOUNTFOR) {
			FPAYTOTALAMOUNTFOR = fPAYTOTALAMOUNTFOR;
		}
		public Double getFPAYAMOUNTFOR_E() {
			return FPAYAMOUNTFOR_E;
		}
		public void setFPAYAMOUNTFOR_E(Double fPAYAMOUNTFOR_E) {
			FPAYAMOUNTFOR_E = fPAYAMOUNTFOR_E;
		}
		public Map<String, Object> getFACCOUNTID() {
			if(CustomUtil.isBlank(FACCOUNTID)) return FACCOUNTID = new HashMap<String, Object>();
			return FACCOUNTID;
		}
		public void setFACCOUNTID(Map<String, Object> fACCOUNTID) {
			
			FACCOUNTID = fACCOUNTID;
		}
		public String getFOPPOSITEBANKACCOUNT() {
			return FOPPOSITEBANKACCOUNT;
		}
		public void setFOPPOSITEBANKACCOUNT(String fOPPOSITEBANKACCOUNT) {
			FOPPOSITEBANKACCOUNT = fOPPOSITEBANKACCOUNT;
		}
		public String getFOPPOSITECCOUNTNAME() {
			return FOPPOSITECCOUNTNAME;
		}
		public void setFOPPOSITECCOUNTNAME(String fOPPOSITECCOUNTNAME) {
			FOPPOSITECCOUNTNAME = fOPPOSITECCOUNTNAME;
		}
		public String getFCOMMENT() {
			return FCOMMENT;
		}
		public void setFCOMMENT(String fCOMMENT) {
			FCOMMENT = fCOMMENT;
		}
		public String getFRecType() {
			return FRecType;
		}
		public void setFRecType(String fRecType) {
			FRecType = fRecType;
		}
		public Map<String, Object> getFCOSTID() {
			if(CustomUtil.isBlank(FCOSTID)) return FCOSTID = new HashMap<String, Object>();
			return FCOSTID;
		}
		public void setFCOSTID(Map<String, Object> fCOSTID) {
			FCOSTID = fCOSTID;
		}
		public Map<String, Object> getFEXPENSEDEPTID_E() {
			if(CustomUtil.isBlank(FEXPENSEDEPTID_E)) return FEXPENSEDEPTID_E = new HashMap<String, Object>();
			return FEXPENSEDEPTID_E;
		}
		public void setFEXPENSEDEPTID_E(Map<String, Object> fEXPENSEDEPTID_E) {
			FEXPENSEDEPTID_E = fEXPENSEDEPTID_E;
		}
		public String getFPOSTDATE() {
			return FPOSTDATE;
		}
		public void setFPOSTDATE(String fPOSTDATE) {
			FPOSTDATE = fPOSTDATE;
		}
		public Double getFPRICE() {
			return FPRICE;
		}
		public void setFPRICE(Double fPRICE) {
			FPRICE = fPRICE;
		}
		public String getFRuZhangType() {
			return FRuZhangType;
		}
		public void setFRuZhangType(String fRuZhangType) {
			FRuZhangType = fRuZhangType;
		}
		
	}
	
}
